JavaScript 程式執行原理:hw1 Event Loop


Posted by backas36 on 2021-08-16

hw1:Event Loop

在 JavaScript 裡面,一個很重要的概念就是 Event Loop,是 JavaScript 底層在執行程式碼時的運作方式。請你說明以下程式碼會輸出什麼,以及盡可能詳細地解釋原因。

console.log(1)
setTimeout(() => {
  console.log(2)
}, 0)
console.log(3)
setTimeout(() => {
  console.log(4)
}, 0)
console.log(5)

Answer :

執行程式 => console.log(1) => 遇到 setTimout ,請 web API 幫我們設定計時器,0 秒後,把 ()=>{console.log(2)} 放到 callback queue 待命

繼續執行程式 => console.log(3) => 遇到 setTimout ,請 web API 幫我們設定計時器,0 秒後,把 ()=>{console.log(4)} 放到 callback queue 待命

繼續執行程式 => console.log(5)

將最後一行 console.log(5) 執行完後 , 此時主程式已經沒有程式可以跑了。 就會看看 callback queue 有沒有工作要執行!

還有兩個剛剛請 web API 幫忙設定計時器的 function 要執行 => 執行 callback queue 第一個 function,()=> {console.log(2)} => 結束後執行第二個 function

這樣就可以知道答案是 1 3 5 2 4。


#js #Event Loop #程式導師實驗計畫第五期







Related Posts

Two Sum

Two Sum

How to build CICD with Jenkins as code based on container

How to build CICD with Jenkins as code based on container

Vue3 起手式

Vue3 起手式


Comments